<?php
App::uses( 'MemberAppModel', 'Model');

class User extends AppModel {
    var $name = 'User';

    var $fields = array('id', 'username',  'full_name', 'password', 'status');

    var $validate = array(
        'full_name' => array(
            'notempty' => array(
                'rule' => array('notempty'),
                'message' => 'Họ tên không được rỗng.',
                'allowEmpty' => false,
                'required' => true,
            ),

            'maxlength' => array(
                'rule' => array('maxlength', 50),
                'message' => 'Họ tên không được vượt quá 50.',
                'allowEmpty' => false,
                'required' => true,
            ),
        ),

        'username' => array(
            'notempty' => array(
                'rule' => array('notempty'),
                'message' => 'Tên đăng nhập không được rỗng.',
                'allowEmpty' => false,
                'required' => true,
            ),

            'maxlength' => array(
                'rule' => array('maxlength', 50),
                'message' => 'Tên đăng nhập không được vượt quá 50',
                'allowEmpty' => false,
                'required' => true,
            ),
        ),

        'password' => array(
            'minlength' => array(
                'rule' => array('minlength', 6),
                'message' => 'Mật khẩu phải lớn hơn hoặc bằng 6 ký tự',
                'allowEmpty' => true,
                'required' => false,
            ),
        ),
    );

    /**
	 * Get all
	 *
	 * @param type  meta
	 * @return type  meta
	 * @access public
	 */
	function getAll(){
		return $this->find('all', array(
			'fields' => $this->fields,
			'conditions' => array(
				'status' => array(4,5)
			)
		));
	}

	/**
	 * Get info by id
	 *
	 * @param type  meta
	 * @return type  meta
	 * @access public
	 */
	function getInfoById($id = null){
		if(empty($id)) return array();

		return $this->find('first', array(
			'fields' => $this->fields,
			'conditions' => array(
				'id' => $id,
				'status' => 4
			)
		));
	}

	/**
     * validate Login
     *
     * @param type  meta
     * @return type  meta
     * @access public
     */
    function validateLogin( $data )
    {
        if( empty( $data ) )
            return false;

        // Find user
        $user = $this->find('first', array( 'conditions' => array(
			'OR'=> array(
				'username' => $data['User']['username'],
				//'email'=> $data['User']['username']
			),
			'password' => $data['User']['password'],
			'User.status' => 4
		)));

        // return
        return $user;
    }

}
